package com.wiscamp.ninechapters.problems.application.dto.commands.sets;

import com.wiscamp.ninechapters.ddd.CommandObject;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.ArrayList;
import java.util.Collection;

/**
 * 组题规则
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class UpdateRegroupRuleCommand extends CommandObject {

    /**
     * 规则编号
     */
    private long ruleId = 0;

    /**
     * 规则代码
     */
    private String ruleCode = "";

    /**
     * 规则名称
     */
    private String ruleName = "";

    /**
     * 机构编号
     */
    private long organizationId = 0;

    /**
     * 学科编号
     */
    private long subjectId = 0;

    /**
     * 总题数
     */
    private int problemQuantity = 0;

    /**
     * 题分数（待删除）
     */
    private int totalScore = 0;

    /**
     * 答题时限
     */
    private int totalTimeLimit = 0;

    /**
     * 是否真题
     */
    private boolean trueProblem = false;

    /**
     * 难度系数
     */
    private int difficulty = 0;

    /**
     * problem set type
     */
    private int setTypeId = 0;

    /**
     * 包含标签规则
     */
    private boolean hasTagRule = false;

    private boolean hasProblemTypeRule = false;

    /**
     * 包含知识点规则
     */
    private boolean hasKnowledgePointRule = false;

    /**
     * 备注
     */
    private String remark = "";

    /**
     * 是否可用
     */
    private boolean enabled = true;


    /**
     * 标签规则列表
     */
    private Collection<UpdateTagRuleDto> tagRules = new ArrayList<>();

    /**
     * 知识点规则列表
     */
    private Collection<UpdateKnowledgePointRuleDto> knowledgePointRules = new ArrayList<>();

    /**
     * 题型规则列表
     */
    private Collection<UpdateProblemTypeRuleDto> problemTypeRules = new ArrayList<>();
}